はじめに
今回は、資産シミュレーター開発の第一歩として、入力チェックのプログラムを作成しました。
複利計算を行う前に、ユーザーが入力した値が正しいか確認する必要があります。
例えば、文字が入力されたり、マイナスの数値が入力されたりすると、正しく計算できません。
そのため、今回は入力チェックの処理を実装していきます。
最初に作成したコード
まずは、投資資産額と想定利回りをそれぞれチェックするコードを書きました。
print('hello')
while True:
try:
a = int(input('投資資産額を入力してください>'))
if a > 0:
break
else:
print('0より大きい数字を入力してください')
except ValueError:
print('数字を入力してください')
while True:
try:
b = float(input('想定利回りを入力してください>'))
if b > 0:
break
else:
print('0より大きい数字を入力してください')
except ValueError:
print('数字を入力してください')
コードの解説
while True
while True:
入力が正しくなるまで、同じ処理を繰り返します。
breakが実行されるまでループが続きます。
try と except
try:
数字として処理できるか試します。
もし文字などが入力されるとエラーになります。
その場合は、
except ValueError:
が実行され、
「数字を入力してください」
と表示して、再び入力を求めます。
if文
if a > 0:
入力された値が0より大きいか確認しています。
資産額や利回りはマイナスでは困るため、この条件を追加しました。
条件を満たせば、
break
でループを終了します。
同じ処理を書いていることに気付いた
コードを書いていると、
「投資資産額」と「想定利回り」で、ほとんど同じ処理を書いていることに気付きました。
Pythonでは、このような繰り返し処理は関数にまとめることができます。
そこで、defを使って書き直してみました。
関数を使って改善したコード
def positive_number(message):
while True:
try:
value = float(input(message))
if value > 0:
return value
else:
print('0より大きい数値を入力してください')
except ValueError:
print('数字を入力してください')
a = positive_number('投資資産額を入力してください>')
b = positive_number('想定利回りを入力してください>')
コードの解説
def
def positive_number(message):
入力チェックの処理を一つの関数にまとめています。
引数のmessageを変更するだけで、さまざまな入力画面に利用できます。
return
return value
正しい数値が入力されたら、その値を返します。
これにより、
a = positive_number(...)
のように結果を変数へ代入できます。
関数を呼び出す
a = positive_number('投資資産額を入力してください>')
ここでは「投資資産額」の入力を行います。
続いて、
b = positive_number('想定利回りを入力してください>')
では、同じ関数を使って利回りを入力しています。
同じ処理を何度も書く必要がなくなり、コードがとてもシンプルになりました。
今回学んだこと
今回のプログラムでは、次の内容を実践できました。
whileで繰り返し処理を行うtryとexceptでエラーを処理するifで条件を判定するdefで同じ処理を関数にまとめるreturnで値を返す
実際にプログラムを書いてみると、「関数はこういう場面で使うのか」と理解が深まりました。
次回予告
今回は入力チェックのプログラムを作成しました。
次回は、いよいよ複利計算のプログラムを作成します。
入力した資産額や利回りを使って、将来の資産額を計算していきます。




コメント